package day14;

public class Dog extends Animal {
    private String breed; // 品种
    
    public Dog() {
        super(); // 调用父类无参构造方法，子类中调用父类构造器必须放第一行有效代码
    }
    
    //子类构造器中会默认调用父类无参构造器
    //子类中显式调用父类构造方法后不会默认调用父类无参构造器
    public Dog(String name, int age, String breed) {
        super(name, age); // 调用父类有参构造方法，不能同时调用子类构造方法（都要放第一行会冲突）
        this.breed = breed;
    }
    
    // 重写父类的方法
    @Override
    public void eat() {
        System.out.println(name + " 在干饭");
    }
    
    // 子类特有的方法
    public void bark() {
        System.out.println(name + " 在汪汪叫 ");
    }
    
    public void fetch() {
        System.out.println(name + " 在追球");
    }
    
    public String getBreed() {
        return breed;
    }
    
    public void setBreed(String breed) {
        this.breed = breed;
    }
    
    @Override
    public String toString() {
        return "狗的名字是" + name + ", 年龄是" + age + ", 品种是" + breed + "";
    }
}